package com.zhongwang.mms.module.purchase.dao;/**
 * 项目名称（软件名称）：忠旺机械物资管理系统(mms)
 * 研发设计单位：忠旺机械设备制造有限公司机械设计院智能控制设计科设计与研发。
 * 版权所有：忠旺机械设备制造有限公司
 * 注：本项目的一切技术专利，使用规范归解释权由忠旺机械设备制造有限公司所有。
 * 软件版本：Ver 1.0.0
 * 文件路径：com.zhongwang.mms.module.purchase.dao
 * 创建时间：2020年05月27日 15时24分
 **/

import com.zhongwang.mms.gen.entity.PInventoryMaterielInfo;
import com.zhongwang.mms.module.purchase.model.PInventoryMaterielInfoModel;
import org.springframework.stereotype.Repository;

import java.sql.SQLException;
import java.util.List;

/**
 * @InterfaceName： PurPInventoryMaterielInfoDao
 * @Description： 台账管理持久层
 * @Author： 徐一贺
 * @Date： 2020/5/27 15:24
 * @Version： V1.0
 **/
@Repository
public interface PurPInventoryMaterielInfoDao {
    /**
     *@FunctionName: findPInventoryMaterielInfoBySelective
     *@Description: 根据条件选择性的查询台账表列表数据
     *@DesignIdea: 根据条件选择性的查询台账表列表数据
     *@Author: 徐一贺
     *@CreateDate: 2020/5/27 15:30
     *@Phone: 18241927380
     *@Param: [param] 条件
     *@Return: [List<PInventoryMaterielInfoModel> ] 台账列表
     *@Throw: 无异常抛出
     *@Version: v1.0.0
     */
    List<PInventoryMaterielInfoModel> findPInventoryMaterielInfoBySelective(PInventoryMaterielInfoModel param);

    /**
     *@FunctionName: PInventoryMaterielInfo
     *@Description: 选择性插入数据
     *@DesignIdea: 选择性插入数据
     *@Author: 徐一贺
     *@CreateDate: 2020/5/27 16:47
     *@Phone: 18241927380
     *@Param: [data] 数据
     *@Return: [int] 插入数据数据量
     *@Throw: [无异常抛出]
     *@Version: v1.0.0
     */
    int insertSelective(PInventoryMaterielInfoModel data);
    /**
     *@FunctionName: getPInventoryMaterielInfoModelByPrimaryKey
     *@Description: 获取台账实体
     *@DesignIdea: 根据主键获取台账实体
     *@Author: 徐一贺
     *@CreateDate: 2020/5/28 8:31
     *@Phone: 18241927380
     *@Param: [imiId] 主键
     *@Return: [com.zhongwang.mms.module.purchase.model.PInventoryMaterielInfoModel] 台账实体载体
     *@Throw: [SQLException] SQL异常
     *@Version: v1.0.0
     */
    PInventoryMaterielInfoModel getPInventoryMaterielInfoModelByPrimaryKey(Integer imiId) throws SQLException;

    /**
     *@FunctionName: updateSelective
     *@Description: 根据主键选择性更新台账信息
     *@DesignIdea: 根据主键选择性更新台账信息
     *@Author: 徐一贺
     *@CreateDate: 2020/5/28 8:35
     *@Phone: 18241927380
     *@Param: [param] 更新的信息
     *@Return: [com.zhongwang.mms.module.purchase.model.PInventoryMaterielInfoModel] 台账实体载体
     *@Throw: [SQLException] SQL异常
     *@Version: v1.0.0
     */
    void updateSelective(PInventoryMaterielInfoModel param) throws SQLException;
    /**
     *@FunctionName: findPInventoryMaterielInfoCountByimiItyIdAndImiStatus
     *@Description: 根据外购件信息表主键和台账状态获取数据数量
     *@DesignIdea: 请填写设计思想
     *@Author: 徐一贺
     *@CreateDate: 2020/6/22 11:18
     *@Phone: 18241927380
     *@Param:
     *@Return:
     *@Throw:
     *@Version: v 1.0.0
     */
    Integer findPInventoryMaterielInfoCountByimiItyIdAndImiStatus(Integer imiItyId);
}
